package haiyangwangwork.lesson02;

import java.math.BigDecimal;
import java.math.RoundingMode;

/*
BigDecimal
    可以对小数数据进行精确计算，并且可以指定数据精确到小数点后几位.

    构造方法
        BigDecimal(String val)              【推荐】
        BigDecimal(double val)


        类名 对象名 = new 构造方法();

     成员方法
        public BigDecimal add(另一个BigDecimal对象) 加法       +
        public BigDecimal subtract (另一个BigDecimal对象) 减法  -
        public BigDecimal multiply (另一个BigDecimal对象) 乘法  *
        public BigDecimal divide (另一个BigDecimal对象) 除法   /

        public BigDecimal divide (另一个BigDecimal对象，精确几位，舍入模式) 除法
            参数1 ，表示参与运算的BigDecimal 对象。
            参数2 ，表示小数点后面精确到多少位
            参数3 ，舍入模式
            BigDecimal.ROUND_UP 进一法
            BigDecimal.ROUND_FLOOR 去尾法
            BigDecimal.ROUND_HAL.F_UP 四舍五入
 */
public class BigDecimalDemo3 {
    public static void main(String[] args) {
//        System.out.println(100.0 / 3);

        BigDecimal bd1 = new BigDecimal("100.0");
        BigDecimal bd2 = new BigDecimal("3");
        BigDecimal result1 = bd1.divide(bd2,2,BigDecimal.ROUND_UP);// 33.34
        BigDecimal result2 = bd1.divide(bd2,2,BigDecimal.ROUND_FLOOR);// 33.33
        BigDecimal result3 = bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP);// 33.33

        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);

    }
}
